﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Data.Entity;
using System.Data.Objects;
using System.Text; 
using EDiamondModel;
/// <summary>
/// Summary description for BLKhachHang
/// </summary>
/// 
namespace EDiamondModel
{
    public partial class BLKhachHang
    {
        private static EDiamondEntities1 db = new EDiamondEntities1();

        #region Các phương thức đọc
        public static KhachHang DocTheoID(int id)
        {
            KhachHang entity = db.KhachHangs.FirstOrDefault(p => p.KhachHangID == id);
            return entity;
        }
        public static KhachHang DocTheoTendn(string Tendn)
        {
            KhachHang entity = db.KhachHangs.FirstOrDefault(p => p.TenDangNhap == Tendn);
            return entity;
        }
        public static IList<KhachHang> Doc()
        {
            return db.KhachHangs.ToList();
        }
        public static IList<KhachHang> Doc(Func<KhachHang, bool> dieukien)
        {
            return db.KhachHangs.Where(dieukien).ToList();
        }
        #endregion


        #region Các phương thức cập nhật
        public static KhachHang TaoDong()
        {
            return db.KhachHangs.CreateObject();
        }
        public static void Them(KhachHang entity, bool ghi = false)
        {
            db.AddToKhachHangs(entity);
            if (ghi) db.SaveChanges();
        }
        public static void Ghi()
        {
            db.SaveChanges();
        }
        public static void Xoa(int id)
        {
            try
            {
                KhachHang entity = db.KhachHangs.Include("DatHangs").SingleOrDefault(p => p.KhachHangID == id);
                if (entity.DatHangs.Count > 0)
                {
                    throw new Exception("Không hủy được vì đã có thông tin phụ thuộc ở Đặt hàng");
                }
                db.KhachHangs.DeleteObject(entity);
                db.SaveChanges();
            }
            catch (Exception ex)
            {

                throw ex;
            }
        }
        #endregion

        #region Các phương thức kiểm tra hợp lệ
        public static void KiemtraDuLieu(KhachHang entity)
        {
            StringBuilder errMessage = new StringBuilder();
            if (string.IsNullOrEmpty(entity.TenDangNhap))
            {
                errMessage.AppendLine("Tên đăng nhập không được rỗng");
            }

            if (!string.IsNullOrEmpty(entity.ToString()))
            {
                throw new Exception(errMessage.ToString());
            }
        }
        #endregion
        public BLKhachHang()
        {
            //
            // TODO: Add constructor logic here
            //
        }
    }
}